The present invention relates to a data processing system and method for providing a data network with the ability to perform circular calculations. More particularly, the present invention relates to an analytic engine having a network of integrated calculator relationships which may be used as a simulator or scenario building system.
Prior to the advent of computerized data processing systems, solving matrices describing large, complex systems was a difficult, time consuming task. Completing a large matrix frequently requires hundreds of individual calculations. Some relief came in the mid 1970's when desktop and hand held electronic calculators, such as the UNICOM 102 by Rockwell and the HP-29C by Hewlett Packard, became widely available. Some calculators, such as the HP 9810A by Hewlett Packard, were developed as programmable calculators with limited memory. With these calculators, commonly used formulas for a matrix could be input into the calculator and stored in order to speed calculation of the matrix.
As personal computers became available, the potential use in calculating matrices using an electronic spreadsheet program was seen quickly. An electronic spreadsheet has the elements of a matrix, plus the ability to automatically calculate the relationships between data fields to produce output. An electronic spreadsheet has columns and rows, with individual intersections representing fields or cells in the spreadsheet. As with a matrix, values can be input into the individual fields of the spreadsheet. Output fields are created by inputting a formula into each output field. The inputs for entered formulas can be either input data fields or outputs from other formulas. When an error is found, the error can be corrected by editing the formula for an output field without having to recalculate the formulas dependent on that field.
Heretofore, users could not provide circular formulas to a spreadsheet. There are times when it is desirable to provide for such circular formulas. For example, a user may want to perform scenarios on a spreadsheet. With some spreadsheet applications, such as EXCEL.TM. from Microsoft, the only way this could be done was to successively try different combinations of input values until the desired output value is found. Some spreadsheet programs do provide solver functions wherein a dialog box appears allowing a user to enter a result for the formula to solve for. The spreadsheet's solver then attempts to guess the input values. However, the user must choose which input fields can be changed and only the formula for the output field the user is trying to solve for could be used. Using the solver is cumbersome due to the need to fill in a dialog box each time the function is to be used. Further, users are forced to designate fields as either input or output, each type having different characteristics.
Another limitation on data networks and spreadsheets heretofore has been that they do not have the ability to have more one than formula associated with an output field. It may be desirable to associate an output field with more than one formula so that different scenarios can be performed and different output can be displayed.
Moreover, a specific limitation to spreadsheets heretofore has been that they do not provide the ability to hide calculation layers from users so that a spreadsheet-based application can be published to users who can only type in values and get back answers without ever seeing, or being able to change the calculations that drive that application.
In business, engineering, scientific or personal finance applications, the ability to perform what-if scenarios is crucial. Although attempts have been made to provide a user with the ability to perform what-if scenarios, they have been substantially limited by algorithms which only provide the ability to guess at inputs successively until the desired output is reached. Problem or spreadsheet solvers have only allowed users to give a single output value and choose fields in the data network which can be changed, and are generally cumbersome to use because the user must perform those choices through a series of programming commands, menus or dialog boxes. Finally, solvers heretofore did not provide the ability to allow use of different formulas for calculating the inputs for a desired output in what-if scenarios than was used for calculating the output.
There is thus a need for a data network system which provides homogenous fields that do not need designation as input or output fields so that, among other things, what-if scenarios can be easily performed. There is further a need for fields in a data network which allow entry of multiple circular formulas for various what-if scenarios.